package org.sbbs.app.gen.webapp.action;

import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
import org.sbbs.app.gen.model.GenEntity;
import org.sbbs.app.gen.service.GenEntityManager;
import org.sbbs.base.webapp.action.BaseJqgridEditAction;

public class GenEntityEditAction extends BaseJqgridEditAction {	

	private GenEntity			model;
	private GenEntityManager	genEntityManager;
	
	public GenEntity getModel() {
		return model;
	}
	
	public void setModel(GenEntity model) {
		this.model = model;
	}
	
	public GenEntityManager getGenEntityManager() {
		return genEntityManager;
	}
	
	public void setGenEntityManager(GenEntityManager genEntityManager) {
		this.genEntityManager = genEntityManager;
	}
	
	public String edit() {
		if (getModelId() != null) {
			this.setModel(this.genEntityManager.get(Long.parseLong(this.getModelId())));
			this.setEditType(EDIT_TYPE_EDIT);
		} else {
			this.setModel(new GenEntity());
			this.setEditType(EDIT_TYPE_NEW);
		}
		return this.SUCCESS;
		
	}
	
	public String save() {
		try {
			HttpServletRequest req = this.getRequest();
			boolean isNew = (this.getEditType() == 1);
			this.getGenEntityManager().save((GenEntity) model);
			this.setMessage(getText((isNew) ? "genEntity.added": "genEntity.updated", "no msg key found,save successed."));
		} catch (Exception e) {
			this.setMessage(getText("error.saved",	new String[] { e.getMessage() }));
			this.setReturnCode(RETURN_STATUS_ERROR);
		}
		return this.SUCCESS;
	}
	
	public String delete() {
		try {
			
			StringTokenizer ids = new StringTokenizer(this.getDelIds(), ",");
			while (ids.hasMoreTokens()) {
				Long removeId = Long.parseLong(ids.nextToken());
				this.getGenEntityManager().remove(removeId);
			}
			this.setMessage(getText("genEntity.deleted",	"no msg key found,delete successed."));
		} catch (Exception e) {
			this.setMessage(getText("error.deleted",new String[] { e.getMessage() }));
			this.setReturnCode(RETURN_STATUS_ERROR);
		}
		return this.SUCCESS;
	}
	
}